package br.com.medvagas.web.mb.e;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.medvagas.comum.entidade.UsuarioEmpresa;
import br.com.medvagas.comum.entidade.UsuarioProfissional;
import br.com.medvagas.comum.entidade.vo.VOConsultaVagaEmpresa;
import br.com.medvagas.comum.util.UtilJSF;
import br.com.medvagas.comum.util.UtilSpring;
import br.com.medvagas.negocio.facade.ICadastrarVaga;

@ManagedBean
@ViewScoped
public class ConsultarVagaMB implements Serializable {
	private static final long serialVersionUID = 1L;
	
	private List<VOConsultaVagaEmpresa> lsVaga;
	private List<VOConsultaVagaEmpresa> lsVagaInativa;
	
	private VOConsultaVagaEmpresa vaga;
	private List<UsuarioProfissional> lsCandidatosVaga;

	private int abaAtiva;
	
	public ConsultarVagaMB() {
		consultarVagasAtivas();
	}
	
	public String consultarVagasAtivas() {
		abaAtiva = 1;
		ICadastrarVaga cv = (ICadastrarVaga) UtilSpring.getBean(ICadastrarVaga.NOME);
		UsuarioEmpresa ue = UtilJSF.getUsuarioEmpresaLogado();
		this.lsVaga = cv.consultarVaga(ue.getIdUsuarioEmpresa(), Boolean.TRUE);
		return null;
	}
	
	public String consultarVagasInativas() {
		abaAtiva = 2;
		ICadastrarVaga cv = (ICadastrarVaga) UtilSpring.getBean(ICadastrarVaga.NOME);
		UsuarioEmpresa ue = UtilJSF.getUsuarioEmpresaLogado();
		this.lsVagaInativa = cv.consultarVaga(ue.getIdUsuarioEmpresa(), Boolean.FALSE);
		return null;
	}
	
	public String visualizarCandidatosVaga() {
		int index = Integer.parseInt(UtilJSF.getParameter("index"));
		VOConsultaVagaEmpresa vaga = lsVaga.get(index);
		
		this.vaga = vaga;
		ICadastrarVaga cv = (ICadastrarVaga) UtilSpring.getBean(ICadastrarVaga.NOME);
		this.lsCandidatosVaga = cv.consultarCandidatosVaga(vaga.getIdVaga());

		UtilJSF.addManagedBeanFlashScope("consultarVagaMB", this);
		
		return "visualizarcandidatosvaga";
	}
	
	public String cancelar() {
		int index = Integer.parseInt(UtilJSF.getParameter("index"));
		VOConsultaVagaEmpresa vaga = lsVaga.get(index);
		ICadastrarVaga cv = (ICadastrarVaga) UtilSpring.getBean(ICadastrarVaga.NOME);
		cv.cancelar(vaga.getIdVaga());
		lsVaga.remove(index);
		return null;
	}
	
	public String excluir() {
		int index = Integer.parseInt(UtilJSF.getParameter("index"));
		VOConsultaVagaEmpresa vaga = lsVagaInativa.get(index);
		ICadastrarVaga cv = (ICadastrarVaga) UtilSpring.getBean(ICadastrarVaga.NOME);
		cv.excluir(vaga.getIdVaga());
		lsVagaInativa.remove(index);
		return null;
	}
	
	public List<VOConsultaVagaEmpresa> getLsVaga() {
		return lsVaga;
	}
	public void setLsVaga(List<VOConsultaVagaEmpresa> lsVaga) {
		this.lsVaga = lsVaga;
	}
	public List<VOConsultaVagaEmpresa> getLsVagaInativa() {
		return lsVagaInativa;
	}
	public void setLsVagaInativa(List<VOConsultaVagaEmpresa> lsVagaInativa) {
		this.lsVagaInativa = lsVagaInativa;
	}
	public int getAbaAtiva() {
		return abaAtiva;
	}
	public void setAbaAtiva(int abaAtiva) {
		this.abaAtiva = abaAtiva;
	}
	public VOConsultaVagaEmpresa getVaga() {
		return vaga;
	}
	public void setVaga(VOConsultaVagaEmpresa vaga) {
		this.vaga = vaga;
	}
	public List<UsuarioProfissional> getLsCandidatosVaga() {
		return lsCandidatosVaga;
	}
	public void setLsCandidatosVaga(List<UsuarioProfissional> lsCandidatosVaga) {
		this.lsCandidatosVaga = lsCandidatosVaga;
	}
	
}
